package br.com.velp.sudecap.mb.empreendimento;

import br.com.velp.sudecap.comum.BaseController;
import br.com.velp.sudecap.comum.InterfaceConsulta;
import br.com.velp.sudecap.datamodel.EmpreendimentoDataModel;
import br.com.velp.sudecap.dto.EmpreendimentoParametrosConsultaDTO;
import br.com.velp.sudecap.entidade.Empreendimento;
import br.com.velp.sudecap.enumerator.PaginaEnum;
import br.com.velp.sudecap.enumerator.SituacaoEmpreendimentoEnum;
import br.com.velp.sudecap.service.EmpreendimentoService;
import br.com.velp.sudecap.web.util.MensagemUtil;
import java.util.List;
import javax.faces.bean.ApplicationScoped;
import javax.faces.model.SelectItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

/**
 * <sumario>
 * <objetivo> "Rastreabilidade" </objetivo>
 * <autor> EDUARDO SANTOS DE OLIVEIRA </autor>
 * <versao>1.0.0.0</versao>
 * <data_criacao> 17.10.2012 </data_criacao>
 * <data_ultima_alteracao> N/A </data_ultima_alteracao>
 * <requisito_afetado> RF003.01 - Listar Empreendimentos </requisito_afetado>
 * <descricao> Managead Bean responsável por controlar as operações de 
 *             Consulta/Exclusão de Empreendimentos </descricao>
 * </sumario>
 */
@Controller("consultarEmpreendimento")
@ApplicationScoped
public class ConsultarEmpreendimento extends BaseController implements InterfaceConsulta{
    
    public static final Long serialVersionUID = 1L;
    
    private List<SelectItem> listaSituacao;
    private EmpreendimentoDataModel empreendimentoDataModel;
    private Empreendimento empreendimentoSelecionado;
    private EmpreendimentoParametrosConsultaDTO parametros;
    
    @Autowired
    private EmpreendimentoService empreendimentoService;
    
    @Override
    public String setup(){
	
	this.listaSituacao = obterSelectItemPopulado(true, SituacaoEmpreendimentoEnum.values());
	this.empreendimentoDataModel = null;
	this.empreendimentoSelecionado = null;
	this.parametros = new EmpreendimentoParametrosConsultaDTO();
	
	return PaginaEnum.CONSULTAR_EMPREENDIMENTO.getValue();
	
    }
    
    @Override
    public String pesquisar(){
	
	this.empreendimentoDataModel = new EmpreendimentoDataModel(this.empreendimentoService, this.parametros);
	
	return null;
	
    }
    
    @Override
    public String excluir(){
	
	this.empreendimentoService.excluir(this.empreendimentoSelecionado);
	this.empreendimentoDataModel = new EmpreendimentoDataModel(this.empreendimentoService, this.parametros);
	
	MensagemUtil.exibirMensagemInformacao("global", MensagemUtil.getMensagem("empreendimentoExcluidoSucesso"));
	
	return null;
	
    }
    
    @Override
    public String voltar(){
	
	return PaginaEnum.PAGINA_PRINCIPAL.getValue();
	
    }    
    
    // <editor-fold desc="GETTERS AND SETTERS" defaultstate="collapsed">
    public List<SelectItem> getListaSituacao() {
	return listaSituacao;
    }

    public void setListaSituacao(List<SelectItem> listaSituacao) {
	this.listaSituacao = listaSituacao;
    }
    
    public EmpreendimentoDataModel getEmpreendimentoDataModel() {
	return empreendimentoDataModel;
    }

    public void setEmpreendimentoDataModel(EmpreendimentoDataModel empreendimentoDataModel) {
	this.empreendimentoDataModel = empreendimentoDataModel;
    }
    
    public Empreendimento getEmpreendimentoSelecionado() {
	return empreendimentoSelecionado;
    }

    public void setEmpreendimentoSelecionado(Empreendimento empreendimentoSelecionado) {
	this.empreendimentoSelecionado = empreendimentoSelecionado;
    } 

    public EmpreendimentoParametrosConsultaDTO getParametros() {
	return parametros;
    }

    public void setParametros(EmpreendimentoParametrosConsultaDTO parametros) {
	this.parametros = parametros;
    }
    // </editor-fold>
    
}
